package com.ruozedata.bigdata.lesson06

/**
 * 函数
 * val/var 函数名称 = (参数列表) => {函数体/方法体}
 * val/var 函数名称:(入参类型) => 返回值类型 = （入参） => {函数体/方法体}
 */
object FunctionApp {

    def main(args: Array[String]): Unit = {

        // step 1

        // 最基础定义
        val f2:(Int, Int) => Int = (a:Int, b:Int) => a + b
        println(f2(1, 2))

        // 简写 1
        val f1 = (a:Int, b:Int) => a + b
        println(f1(3, 9))

        // 简写 2
        val f3:(Int, Int) => Int = (a, b) => a + b
        println(f3(1, 2))


        // step 2

        val sayhelloFunc = sayHello _  // 方法转函数 再赋定义
        sayhelloFunc("kk")


    }

    def sayHello(name:String): Unit = {
        println(s"$name....hello")
    }

    def method(op:(Int,Int) => Int): Unit = {
        op(10, 20)
    }
}
